﻿using System;

namespace NavigationCoercion.Patterns
{
    public interface INavigatedPattern
    {
        INavigatedPattern ThenTo<TPage>();
        INavigatedPattern ThenOptionallyTo<TPage>();
        INavigatedPattern ThenToAnyPage();

        void RemoveEntriesFromBackStack(int count);
        void RemoveEntriesFromBackStackTill<TPage>();        
    }

    public interface INavigatingPattern
    {
        void RedirectTo<T>();
        void RedirectWithReturnUri<T>(string paramKey);
        INavigatingPattern If(Func<bool> func);
    }
}